home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / QuickDraw GX / QuickDraw GX Info / QuickDraw GX Interfaces / Interfaces & Libraries / Pascal Interfaces & Libraries / Pascal Interfaces / MathRoutines.p < prev    next >
Encoding:
Text File  |  1994-04-02  |  4.0 KB  |  90 lines  |  [TEXT/MPS ]

  1. {
  2.  graphics:
  3.     math routines
  4.     by Cary Clark, Georgiann Delaney, Michael Fairman, Dave Good, Robert Johnson, Keith McGreggor, Oliver Steele, David Van Brink, Chris Yerga
  5.     Copyright 1987 - 1991 Apple Computer, Inc.  All rights reserved.    
  6. }
  7.  
  8. {$IFC UNDEFINED UsingIncludes}
  9. {$SETC UsingIncludes := 0}
  10. {$ENDC}
  11.  
  12. {$IFC NOT UsingIncludes}
  13.     UNIT MathRoutines;
  14.     INTERFACE
  15. {$ENDC}
  16.  
  17. {$IFC UNDEFINED UsingMathRoutines}
  18. {$SETC UsingMathRoutines := 1}
  19.  
  20.  
  21. {$I+}
  22. {$SETC MathRoutinesIncludes := UsingIncludes}
  23. {$SETC UsingIncludes := 1}
  24. {$IFC UNDEFINED UsingMathTypes}
  25. {$I $$Shell(PInterfaces)MathTypes.p}
  26. {$ENDC}
  27. {$SETC UsingIncludes := MathRoutinesIncludes}
  28.  
  29.  
  30. FUNCTION CopyToMapping(VAR target: GxMapping; source: GxMappingPointer): GxMappingPointer; C;
  31. FUNCTION InvertMapping(VAR target: GxMapping; source: GxMappingPointer): GxMappingPointer; C;
  32. FUNCTION MapMapping(VAR target: GxMapping; source: GxMappingPointer): GxMappingPointer; C;
  33. FUNCTION MoveMapping(VAR target: GxMapping; hOffset, vOffset: Fixed): GxMappingPointer; C;
  34. FUNCTION MoveMappingTo(VAR target: GxMapping; hPosition, vPosition: Fixed): GxMappingPointer; C;
  35. FUNCTION NormalizeMapping(VAR target: GxMapping): GxMappingPointer; C;
  36. FUNCTION RotateMapping(VAR target: GxMapping; angle, xCenter, yCenter: Fixed): GxMappingPointer; C;
  37. FUNCTION ScaleMapping(VAR target: GxMapping; hFactor, vFactor, xCenter, yCenter: Fixed): GxMappingPointer; C;
  38. FUNCTION ResetMapping(VAR target: GxMapping): GxMappingPointer; C;
  39. FUNCTION SkewMapping(VAR target: GxMapping; skewX, skewY, xCenter, yCenter: Fixed): GxMappingPointer; C;
  40.  
  41. PROCEDURE MapPoints(source: GxMappingPointer; count: LongInt; VAR vector: GxPoint); C;
  42.  
  43. FUNCTION FirstBit(anUnsignedLong: UnsignedLong): Integer; C;
  44. FUNCTION WideScale(source: GxWidePointer): Integer; C;
  45.  
  46. FUNCTION LinearRoot(first, last: Fixed; VAR t: Fract): Integer; C;
  47. FUNCTION QuadraticRoot(first, control, last: Fixed; VAR t: Fract): Integer; C;
  48.  
  49. FUNCTION PolarToPoint(aGxPolarPointer: GxPolarPointer; VAR aGxPoint: GxPoint): GxPointPointer; C;
  50. FUNCTION PointToPolar(aGxPointPointer: GxPointPointer; VAR aGxPolar: GxPolar): GxPolarPointer; C;
  51.  
  52. FUNCTION FractCubeRoot(source: Fract): Fract; C;
  53. FUNCTION FractDivide(dividend, divisor: Fract): Fract; C;
  54. FUNCTION FractMultiply(multiplicand, multiplier: Fract): Fract; C;
  55. FUNCTION FractSineCosine(degrees: Fixed; VAR cosine: Fract): Fract; C;
  56. FUNCTION FractSquareRoot(source: Fract): Fract; C;
  57.  
  58. FUNCTION FixedDivide(dividend, divisor: Fixed): Fixed; C;
  59. FUNCTION FixedMultiply(multiplicand, multiplier: Fixed): Fixed; C;
  60.  
  61. { This next call is (source * multiplier / divisor) -- it avoids underflow, overflow by using wides }
  62. FUNCTION MultiplyDivide(source, multiplier, divisor: LongInt): LongInt; C;
  63.  
  64. FUNCTION Magnitude(deltaX, deltaY: LongInt): UnsignedLong; C;
  65. FUNCTION VectorMultiplyDivide(count: LongInt; vector1: LongIntPointer; step1: LongInt; vector2: LongIntPointer; step2, divisor: LongInt): LongInt; C;
  66.  
  67. FUNCTION WideAdd(VAR target: GxWide; source: GxWidePointer): GxWidePointer; C;
  68. FUNCTION WideCompare(target, source: GxWidePointer): Integer; C;
  69. FUNCTION WideNegate(VAR target: GxWide): GxWidePointer; C;
  70. FUNCTION WideShift(VAR target: GxWide; shift: LongInt): GxWidePointer; C;
  71. FUNCTION WideSquareRoot(source: GxWidePointer): UnsignedLong; C;
  72. FUNCTION WideSubtract(VAR target: GxWide; source: GxWidePointer): GxWidePointer; C;
  73.  
  74. FUNCTION WideMultiply(multiplicand, multiplier: LongInt; VAR target: GxWide): GxWidePointer; C;
  75. FUNCTION WideDivide(dividend: GxWidePointer; divisor: LongInt; VAR remainder: LongInt): LongInt; C; { returns the quotient }
  76. FUNCTION VectorMultiply(count: LongInt; vector1: LongIntPointer; step1: LongInt; vector2: LongIntPointer;
  77.         step2: LongInt; VAR dot: GxWide): GxWidePointer; C;
  78. FUNCTION WideWideDivide(VAR dividend: GxWide; divisor: LongInt; VAR remainder: LongInt): GxWidePointer; C; { quotient replaces dividend }
  79.  
  80. FUNCTION RandomBits(count, focus: LongInt): UnsignedLong; C;
  81. PROCEDURE SetRandomSeed(seed: GxWidePointer); C;
  82. FUNCTION GetRandomSeed(VAR seed: GxWide): GxWidePointer; C;
  83.  
  84.  
  85. {$ENDC}
  86.  
  87. {$IFC NOT UsingIncludes}
  88.     END.
  89. {$ENDC}
  90.